#pragma once
#include <Windows.h>
enum ObjectType { OBJECT_PLAYER, OBJECT_ENEMY, OBJECT_PROJECTILE, OBJECT_BASE, OBJECT_TOTAL};

class CDirect3D;
class CRetroInput;
class CCamera;
class IBaseObject
{
public:
	IBaseObject(void) {};
	virtual ~IBaseObject(void) {};

	virtual void Initialize() = 0;
	virtual void Input(CRetroInput* pInput) = 0;
	virtual void Update(float fDeltaTime) = 0;
	virtual void Render(CDirect3D* pRender, CCamera* pCamera) = 0;
	virtual void Destroy() = 0;
	virtual bool CheckCollision(IBaseObject* pObject) = 0;
	virtual ObjectType Type() = 0;

	/*
	void Initialize();
	void Input(CRetroInput* pInput);
	void Update(float fDeltaTime);
	void Render(CDirect3D* pRender);
	void Destroy();
	inline ObjectType Type() { return ObjectType::OBJECT_BASE;}
	*/
};

